커스텀 리소스 정의(CRD)와 오퍼레이터

커스텀 리소스 정의(CRD)는 쿠버네티스 API를 확장하여 사용자 정의 리소스를 생성할 수 있게 해주며, 오퍼레이터는 이러한 커스텀 리소스를 관리하는 컨트롤러입니다.

커스텀 리소스 정의(CRD)

쿠버네티스 API의 확장을 통해 새로운 유형의 리소스를 정의할 수 있는 메커니즘입니다.

오퍼레이터(Operator)

커스텀 리소스의 상태를 모니터링하고 관리하는 컨트롤러로, 애플리케이션별 운영 지식을 자동화합니다.

클라우드 네트워크 개념과 비교

실습 예시

커스텀 리소스 정의(CRD) 생성

apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: databases.example.com
spec:
  group: example.com
  names:
    kind: Database
    plural: databases
    singular: database
    shortNames:
    - db
  scope: Namespaced
  versions:
  - name: v1
    served: true
    storage: true
    schema:
      openAPIV3Schema:
        type: object
        properties:
          spec:
            type: object
            properties:
              engine:
                type: string
              version:
                type: string
              storageSize:
                type: string
              replicas:
                type: integer
                minimum: 1
            required:
            - engine
            - version
            - storageSize

커스텀 리소스(CR) 생성

apiVersion: example.com/v1
kind: Database
metadata:
  name: my-postgres
spec:
  engine: postgres
  version: "13.3"
  storageSize: "10Gi"
  replicas: 3

오퍼레이터 구성 요소

일반적인 사용 사례

잘 알려진 오퍼레이터